// source --> https://www.companio.ch/wp-content/plugins/woocommerce_datatranscw/resources/js/frontend.js?ver=4.9.8 (function ($) { var isSubmitted = false; var CheckoutObject = { cssClass: '', successCallback: '', placeOrder: function() { var form = $('form.checkout'); var form_data = form.data(); // WGM: Back Button if($("input[name=cw-wgm-button-back]").length > 0) { return true; } //WGM: MultiStep if($("input[name=wc_gzdp_step_submit]").length > 0) { if($("input[name=wc_gzdp_step_submit]").val() == "address"){ return true; } } var selectedPaymentMethodElement = $('input:radio[name=payment_method]:checked'); var selectedPaymentMethod = selectedPaymentMethodElement.val(); var secondRun = false; if($("input[name=datatranscw_payment_method_choice]").length > 0) { secondRun = true; selectedPaymentMethodElement = $("input[name=datatranscw_payment_method_choice]"); selectedPaymentMethod = selectedPaymentMethodElement.val(); } var moduleName = 'datatranscw'; var selectedModuleName = (selectedPaymentMethod != undefined) ? selectedPaymentMethod.toLowerCase().substring(0, moduleName.length) : ''; onDatatransCwCheckoutPlaceObject = this; if (moduleName == selectedModuleName) { form.addClass('processing'); if ( form_data["blockUI.isBlocked"] != 1 ) { form.block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } this.successCallback = previewAuthorization; this.cssClass = 'datatranscw-preview-fields'; onDatatransCwCheckoutPlaceObject = this; if(secondRun) { this.generateOrder(form, selectedPaymentMethod); return false; } var validateFunctionName = 'cwValidateFields'+selectedPaymentMethod.toLowerCase(); var validateFunction = window[validateFunctionName]; if (typeof validateFunction != 'undefined') { validateFunction(function(valid){onDatatransCwCheckoutPlaceObject.successCall();}, function(errors, valid){onDatatransCwCheckoutPlaceObject.failureCall(errors, valid);}); return false; } onDatatransCwCheckoutPlaceObject.successCall(); return false; } }, failureCall: function(errors, valid){ alert(errors[Object.keys(errors)[0]]); var form = $('form.checkout'); form.removeClass('processing').unblock(); form.find( '.input-text, select' ).blur(); }, successCall : function(){ var form = $('form.checkout'); var selectedPaymentMethodElement = $('input:radio[name=payment_method]:checked'); var selectedPaymentMethod = selectedPaymentMethodElement.val(); onDatatransCwCheckoutPlaceObject = this; if(selectedPaymentMethodElement.parents('li').find('.datatranscw-validate').length > 0){ var ajaxUrl; if(typeof wc_checkout_params != 'undefined') { ajaxUrl = wc_checkout_params.ajax_url; } if(typeof checkoutUrl == 'undefined') { ajaxUrl = woocommerce_params.ajax_url; } var separator = ajaxUrl.indexOf('?') !== -1 ? "&" : "?"; ajaxUrl = ajaxUrl+separator+"action=woocommerce_datatranscw_validate_payment_form"; var inputData = getFormFieldValues('datatranscw-preview-fields', selectedPaymentMethod.toLowerCase()); var postData = "&"; $.each(inputData, function(key, value) { postData += encodeURIComponent(key)+"="+encodeURIComponent(value)+"&"; }); $.ajax({ type: 'POST', url: ajaxUrl, data: form.serialize()+postData+ onDatatransCwCheckoutPlaceObject.cssClass + "=true", success: function( code ) { var response = ''; try { response = $.parseJSON(code); if ( response.result == 'success' ) { onDatatransCwCheckoutPlaceObject.generateOrder(form, selectedPaymentMethod); return false; } else if ( response.result == 'failure' ) { throw 'Result failure'; } else { throw 'Invalid response'; } } catch(err ){ // Remove old errors $( '.woocommerce-error, .woocommerce-message' ).remove(); // Add new errors if ( response.message ) { form.prepend(response.message); } else { form.prepend(code); } // Cancel processing form.removeClass( 'processing' ).unblock(); // Lose focus for all fields form.find( '.input-text, select' ).blur(); // Scroll to top $( 'html, body' ).animate({ scrollTop: ( $( 'form.checkout' ).offset().top - 100 ) }, 1000 ); } }, dataType: 'html' }); return false; } else { onDatatransCwCheckoutPlaceObject.generateOrder(form, selectedPaymentMethod); return false; } }, generateOrder: function(form, selectedPaymentMethod) { onDatatransCwCheckoutPlaceObject = this; var checkoutUrl; if(typeof wc_checkout_params != 'undefined') { checkoutUrl = wc_checkout_params.checkout_url; } if(typeof checkoutUrl == 'undefined') { checkoutUrl = woocommerce_params.checkout_url; } $.ajax({ type: 'POST', url: checkoutUrl, data: form.serialize() + "&" + onDatatransCwCheckoutPlaceObject.cssClass + "=true", success: function( code ) { var response = ''; try { if (code.indexOf("") >= 0) { code = code.split("")[1]; } if (code.indexOf("") >= 0) { code = code.split("")[0]; } try { // Check for valid JSON response = $.parseJSON( code ); } catch ( e ) { // Attempt to fix the malformed JSON var validJson = code.match( /{"result.*"}/ ); if ( null === validJson ) { throw 'Invalid response'; } else { response = $.parseJSON(validJson[0]); } } if ( response.result == 'success' ) { onDatatransCwCheckoutPlaceObject.successCallback(response, selectedPaymentMethod); } else if ( response.result == 'failure' ) { throw 'Result failure'; } else { throw 'Invalid response'; } } catch( err ) { if ( response.reload === 'true' ) { window.location.reload(); return; } // Remove old errors $( '.woocommerce-error, .woocommerce-message' ).remove(); // Add new errors if ( response.messages ) { form.prepend( response.messages ); } else { form.prepend( code ); } // Cancel processing form.removeClass( 'processing' ).unblock(); // Lose focus for all fields form.find( '.input-text, select' ).blur(); // Scroll to top $( 'html, body' ).animate({ scrollTop: ( $( 'form.checkout' ).offset().top - 100 ) }, 1000 ); // Trigger update in case we need a fresh nonce if ( response.refresh === 'true' ) { $( 'body' ).trigger( 'update_checkout' ); } $( 'body' ).trigger( 'checkout_error' ); } }, dataType: 'html' }); }, }; var getFormFieldValues = function(parentCssClass, paymentMethodPrefix) { var output = {}; $('.' + parentCssClass + ' *[data-field-name]').each(function (element) { var name = $(this).attr('data-field-name'); if(name.lastIndexOf(paymentMethodPrefix, 0) === 0) { name = name.substring(paymentMethodPrefix.length); name = name.substring(1, name.length -1 ); if(this.type == "radio") { if(this.checked) { output[name] = $(this).val(); } } else{ output[name] = $(this).val(); } } }); return output; }; var generateHiddenFields = function(data) { var output = ''; $.each(data, function(key, value) { output += ''; }); return output; }; var removeNameAttributes= function(cssClass) { // Remove name attribute to prevent submitting the data $('.' + cssClass + ' *[name]').each(function (element) { $(this).attr('data-field-name', $(this).attr('name')); if($(this).is(':radio')){ return true; } $(this).removeAttr('name'); }); } var addAlias = function(cssClass){ // Add listener for alias Transaction selector $('.' + cssClass).parents('li').find('.datatranscw-alias-input-box > select').bind('change', function() { $('body').trigger('update_checkout'); }); } var registerCheckoutObject = function(){ bindOrderConfirmEvent(CheckoutObject); }; var bindOrderConfirmEvent = function (CheckoutObject) { var form = $('form.checkout'); var attached = form.attr('data-datatranscw-attached'); if (attached != 'true') { form.attr('data-datatranscw-attached', 'true'); form.bind('checkout_place_order', function() { return CheckoutObject.placeOrder(); }); return false; } }; // We have to make sure that the JS in the response is executed. $( document ).ready(function() { if (typeof window['force_js_execution_on_form_update_listener'] === 'undefined') { window['force_js_execution_on_form_update_listener'] = true; $('body').bind('updated_checkout', function() { removeNameAttributes('datatranscw-preview-fields'); addAlias('datatranscw-preview-fields'); if ($('.datatranscw-preview-fields').length > 0) { registerCheckoutObject(); } }); } }); $( document ).ajaxStop(function(event, xhr, settings) { removeNameAttributes('datatranscw-preview-fields'); addAlias('datatranscw-preview-fields'); if ($('.datatranscw-preview-fields').length > 0) { registerCheckoutObject(); } }); var previewAuthorization = function (result, selectedPaymentMethod) { if(typeof result.redirect !== 'undefined') { var additionalFields = $('
'); $('.' + 'datatranscw-preview-fields' + ' *[data-field-name]').each(function (element) { var name = $(this).attr('data-field-name'); if(name.lastIndexOf(selectedPaymentMethod.toLowerCase(), 0) === 0) { $(additionalFields).append($(this)); } }); var redirectUrl; if ( result.redirect.indexOf( "https://" ) != -1 || result.redirect.indexOf( "http://" ) != -1 ) { redirectUrl = result.redirect; } else { redirectUrl = decodeURI( result.redirect ); } $.get(redirectUrl, function(data){ var newBodyString = data.replace(/^[\S\s]*]*?>/i, "").replace(/<\/body[\S\s]*$/i, ""); var newBody = $("").html(newBodyString); if(newBody.find('.wgm-go-back-button').length > 0){ $('body').html(newBody.html()); $('form.checkout').append(additionalFields); $('form.checkout').append(''); $('.wgm-go-back-button').on('click', function() { $('form.checkout').append(''); }); $('form.checkout').on('submit', function(){ return CheckoutObject.placeOrder(); }); $("html, body").animate({ scrollTop: $("form.checkout").offset().top - 100 }, 1e3); } else { window.location = decodeURI( redirectUrl ); } }); } else if(typeof result.ajaxScriptUrl !== 'undefined'){ $.getScript(result.ajaxScriptUrl, function() { eval("var callbackFunction = " + result.submitCallbackFunction); callbackFunction(getFormFieldValues('datatranscw-preview-fields', selectedPaymentMethod.toLowerCase())); }); } else { var newForm = ''; $('body').append(newForm); $('#datatranscw_preview_form').submit(); } } }(jQuery)); // source --> https://www.companio.ch/wp-content/themes/Divi-Child/wp-advanced-search-master/js/scripts.js?ver=1 // Global constants var __WPAS = { FORM : "#wp-advanced-search.wpas-ajax-enabled", CONTAINER : "#wpas-results", INNER : "#wpas-results-inner", DEBUG_CONTAINER : "#wpas-debug", PAGE_FIELD : "#wpas-paged", FORM_ID: "", KEY_PREFIX: "wpasInstance_", HASH: "", STORAGE_KEY: function() { return this.KEY_PREFIX + this.FORM_ID; } }; jQuery(document).ready(function($) { __WPAS.FORM_ID = $('#wpas-id').val(); __WPAS.HASH = $(__WPAS.FORM).data('ajax-url-hash'); var CURRENT_PAGE = 1; /** * Event listeners */ $('form.wpas-autosubmit :input').change(function() { $(this).parents('form').submit(); }); $('button.wpas-clear').click(function(e) { e.preventDefault(); $(this).parents('form').find(':input') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .removeAttr('selected'); $(this).parents('form.wpas-autosubmit').each(function() { $(this).submit(); return false; }); }); $('input.wpas-reset').click(function(e){ e.preventDefault(); $(this).parents('form')[0].reset(); $(this).parents('form.wpas-autosubmit').each(function() { $(this).submit(); return false; }); }); /** * AJAX Functionality */ if ($(__WPAS.FORM).length == 0) { log("No AJAX-enabled WPAS search form detected on page."); return; } if ($(__WPAS.CONTAINER).length == 0) { log("No container with ID #wpas-results found on page. Results cannot be shown"); return; } var DEBUG_ON = ($(__WPAS.FORM).hasClass('wpas-debug-enabled')) ? true : false; var SHOW_DEFAULT = ($(__WPAS.FORM).data('ajax-show-default')) ? true : false; var T = (DEBUG_ON) ? 500 : 0; if (DEBUG_ON && $(__WPAS.DEBUG_CONTAINER).length == 0) { log("WPAS_DEBUG is enabled but no container with ID #wpas-debug was found " + "on this page. Debug information cannot be shown."); return; } var ajaxLoader = { container: "wpas-load", load_btn: "wpas-load-btn", load_btn_text: "", load_img: "wpas-loading-img", load_img_url: "", init : function(form) { this.load_btn_text = $(form).data('ajax-button'); this.load_img_url = $(form).data('ajax-loading'); $(__WPAS.CONTAINER).append(this.create()); }, create: function() { var html = "